/**
 * @Copyright:Copyright (c) 2007 - 2023
 * 
 */
package com.tengtong.commons.lang;

import java.util.regex.Pattern;

/**
 * 一些正则表达式
 *
 * @author lin_jinming
 * @since: v1.0
 */
public class RegexUtils {
    
    /**
     * 用于提取函数参数的表达式
     */
    public final static Pattern FUNC_PATTERN = Pattern.compile("(^[a-zA-Z_][a-zA-Z0-9_]*)\\((.*?)\\)$");
    
    /**
     * 首字符为字母，其他由字母、数字和下划线组成的关键字
     */
    public final static Pattern KEYWORD_PATTERN = Pattern.compile("^[a-zA-Z][a-zA-Z0-9_]*$");
    
    /**
     * 如果是关键字（例如 java 合法类名，变量名），返回 true
     *
     * @param text
     * @return
     */
    public final static boolean isKeyword(String text) {
        return match(text, KEYWORD_PATTERN);
    }
    
    /**
     * 正则表达式匹配
     *
     * @param text
     * @param reg
     * @return
     */
    public final static boolean match(String text, String reg) {
        return match(text, Pattern.compile(reg));
    }
    
    /**
     * 匹配
     *
     * @param text
     * @param pattern
     * @return
     */
    public final static boolean match(String text, Pattern pattern) {
        if(StringUtils.isNullOrEmpty(text) || pattern == null) {
            return false;
        }
        return pattern.matcher(text).matches();
    }
}
